Electronic content rights with and-or expression

ABSTRACT

Methods and apparatus for creating a license defining permissions to use electronic content. The methods include selecting a plurality of habitat types, each an aspect of a user environment to which a license can be bound, the selection based on input from a retail customer; determining one or more habitat values and relations for each selected type; and creating a license to use the electronic content, the license including an and-or logic expression of habitat terms, each term containing one of the selected types and its set of corresponding values and relations. Each habitat term may include a key for decrypting or unlocking the electronic content. In another aspect, the methods include receiving from a retail customer an input selecting habitat types and one or more habitat values for each selected type; and requesting from a server a license file to permit use of an electronic content, the license file including an and-or logic expression of habitat terms, each term containing one of the selected types and its corresponding values. In another aspect, the methods include receiving electronic content at a user computer; receiving a license file permitting use of the electronic content at the user computer, the license file including an and-or logic expression of habitat terms, each term containing a set of access permissions; extracting the set of permissions from an evaluation of the expression that renders the expression true; and allowing an end user to access the electronic content according to the extracted permissions.

BACKGROUND OF THE INVENTION

The present invention relates to creating a license for electroniccontent.

With the growing demand for online content, providers—publishers,distributors, and Web retailers—of distributed electronic content oftendesire to restrict access to the content to authorized users only. Acopyright holder may wish to restrict access to those individuals whohave paid for a copy of an electronic book, for example.

Some electronic content is distributed in a freely-readable form, thatis, with no protection against unauthorized use or copying. Othercontent is distributed in some encrypted or otherwise unreadable form.For example, encrypted documents require a decryption key or othermechanism for rendering the document readable to an authorized user.Some of these decryption mechanisms use the same encrypted document andsame key for all users. Others produce a specifically-encrypted documentand unique key for each user. Yet others use the same encrypted documentfor all users, but supply a separate decryption, or rights license file,that is unique to each user and is in some way tied to the user'scomputing environment.

Prior rights license designs tie a license to a single computingenvironment, such as a serial number associated with a hard disk in theauthorized user's computer. The corresponding electronic content can beaccessed only from that hard disk or if that hard disk is present.

SUMMARY OF THE INVENTION

In general, in one aspect, the invention provides methods, and apparatusimplementing the methods, for creating a license defining permissions touse electronic content. The methods include selecting a plurality ofhabitat types, each of which is an aspect of a user environment to whicha license can be bound, where the selection is based on input from aretail customer; determining a set of one or more habitat values andrelations for each of the selected habitat types; and creating a licenseto permit use of the electronic content, where the license includes anand-or logic expression of habitat terms and each habitat term containsone of the selected habitat types and its set of corresponding habitatvalues and relations. Each habitat term may include a key for decryptingor unlocking the electronic content.

In general, in another aspect, the invention provides methods, andapparatus implementing the methods, for obtaining a license file toelectronic content. The methods include receiving from a retail customeran input selecting a plurality of habitat types and a set of one or morehabitat values for each of the selected habitat types; and requestingfrom a server a license file to permit use of an electronic content, thelicense file including an and-or logic expression of habitat terms, eachhabitat term containing one of the selected habitat types and itscorresponding set of habitat values.

In general, in another aspect, the invention provides methods, andapparatus implementing the methods, for allowing an end user to accesselectronic content. The methods include receiving electronic content ata user computer; receiving a license file permitting use of theelectronic content at the user computer, the license file including anand-or logic expression of habitat terms, each habitat term containing aset of access permissions; extracting the set of access permissions froman evaluation of the expression that renders the expression true; andallowing an end user to access the electronic content according to theextracted set of access permissions applicable to the electroniccontent.

Advantages that can be seen in implementations of the invention includeone or more of the following. The invention allows different accessrights, decryption keys and access permissions for multiple differenthabitat types to be described in a single license file. The inventionalso allows a retail customer to select some or all of the habitat typesto which the license is bound.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features andadvantages of the invention will become apparent from the description,the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a license file creation process in accordance with thepresent invention.

FIG. 2 is a flowchart of a process in accordance with the presentinvention.

FIG. 3 is a flowchart of a process in accordance with the presentinvention.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

FIG. 1 shows a license file creation process 100 in accordance with thepresent invention. It creates a license file 102 suitable for use withlocked (encrypted) electronic content. The term “electronic content” canapply to an electronic document, a piece of software, or an electronicfile including sound bytes, images or movie clips; however, only theelectronic document will be used in the examples in this specification.

Typically, a license file 102 includes encrypted and encoded informationthat: (a) identifies electronic content; (b) specifies the permissions auser has for the electronic content; (c) provides a key that can be usedto decrypt the electronic content; and (d) determines the environment inwhich the electronic content can be accessed. In one implementation, thelicense file 102 includes a header and a license. The header includes acontent identifier 104 that identifies the electronic content uniquely.The identifier 104 allows the user to locate (e.g., in a contentprovider's database) and obtain a copy of the electronic content. Thelicense specified in the license file 102 is an AND-OR logic expressionof habitat terms that defines the combination of habitat termconjunctions and disjunctions that have to be satisfied for anelectronic content to be made available. In one implementation, eachhabitat term is of the format:

-   -   <relation; name=“habitat type”; value=“habitat value”;        key=“binary data”>where “relation” is one of:        -   eq—equal to        -   ne—not equal to        -   ge—greater than or equal to        -   le—less than or equal to        -   gt—greater than        -   lt—less than.            A habitat type 110 is any type of user environment (or user            environment feature) to which the license can be bound.            Suitable habitat types 110 include (but are not limited to)            a central processing unit (CPU), hard disk, removable floppy            disk, CDROM, removable disk cartridge, flash memory card,            network drive, user login name, fingerprint, handwritten            signature, other user biometric data, user-possessed smart            card, time and geographic location. Each habitat value 112            is an identifier for a particular habitat type 110. For            example, a habitat value 112 can be a device-specific serial            number such as a central processing unit (CPU) number, a            hard disk serial number, a removable floppy disk serial            number, a CD-ROM serial number, a removable disk cartridge            serial number, a flash memory card serial number, a network            drive serial number; a user-specific login name; a            user-specific fingerprint; a user-specific handwritten            signature; a user-specific voiceprint; a user-specific            retinal scan; a Coordinated Universal Time (UTC) time or            equivalent; a local time; or a geographic location such as a            global positioning system (GPS) location or a digital video            disc (DVD) country code identifying a geographic region.            Typically, for habitat types 110 that reference a CPU or a            storage device, only the “eq” and “ne” relations 114 apply.

The key of a habitat term is encoded binary data that can be extractedand decoded to obtain a decryption key 108 and a set of accesspermissions 106 for the electronic content. Although the decryption key108 and the access permissions 106 can be extracted from the key of anyhabitat term, this information is generally only extracted once by usingthe last habitat term that is evaluated (e.g., the first habitat termthat evaluates to true in an ORed set of habitat terms, or the lasthabitat term that evaluates to true in an ANDed set of habitat terms) togrant a user access to the electronic content. In alternativeimplementations, the access permissions 106 are extracted from the keysof more than one habitat term. The access permissions 106 specify thetypes of actions, such as text selection, printing and annotation, thatare permitted on the electronic content once it is decrypted using thedecryption key 108. During the electronic content locking process, thecontent provider (e.g., a publisher) can embed in the electronic contenta universal set of access permissions—i.e., a set of permissionspermitting an end user to perform every type of action on the electroniccontent. If this is the case, then the universal set of accesspermissions and the extracted access permissions 108 are ANDed togetherto create a restricted set of permissions that are applied to theelectronic content.

The AND-OR expression of habitat terms can be arbitrarily complex. Inother words, the expression is not subject to pre-determined limitationsas to length (i.e., the number of habitat terms), content (i.e., thehabitat types 110 and the habitat values 112 in each habitat term),relations, or nesting. Using an AND-OR expression of habitat termsallows a single license to be used with a combination of habitat termdisjunctions and conjunctions. Expressing habitat term disjunctionsallows a single license to be used on multiple computers. Settingdifferent access rights for each habitat term allows, for example, in aclassroom setting having one teacher computer and thirty studentcomputers, a single license to permit the printing of a document on theteacher computer and not on the thirty student computers. Expressinghabitat term disjunctions also allows for robustness of use. Forexample, a user can access an electronic content using the same licenseeven if one of the habitat types 110 in the license, such as a harddisk, is changed as a result of an upgrade. Expressing habitat termconjunctions allows a single license to restrict the access of theelectronic content to a required combination of habitat types 110,habitat values 112 and relations 114 between habitat types 110 andhabitat values 112, such as (time greater than Jan. 1, 2000) AND (timeless than Dec. 12, 2001) AND (CPU equal 1234) OR (CDROM equal 567). Asingle license can include multiple AND-OR expressions of nested habitatterms. An example of a license including nested AND-OR expressions is(time greater than Jan. 1, 2000) AND {(time less than Dec. 12, 2001) AND((CPU equal 1234) OR (CDROM equal 567))} OR {(time less than Dec. 12,2001) AND (CPU equal 4567) OR (CDROM equal 891)}.

Generally, the term “user” refers to both a consumer interacting with abroker program to obtain a license file for use with electronic contentand to a consumer using a license file to access electronic content. Attimes in this specification, it will be important to distinguish betweenthese two types of consumers. In these situations, the term “end user”will refer to the consumer using a license file and the term “retailcustomer” will refer to the consumer interacting with a broker programto obtain a license file. It should be noted that the retail customercan obtain a license file for his own use as an end user, oralternatively obtain a license file for use by someone else. Returningto the classroom setting example provided above, a teacher can be theretail customer interacting with a broker program to obtain a licensefile for thirty-one end users—i.e., one end user using the teachercomputer and thirty end users using the student computers.

As shown in FIG. 2, an end user receives a locked electronic document(step 202) through some form of distribution. The end user might havedownloaded the locked document from a web site—the content provider'sweb site, for example—onto a personal computer or public kiosk as aresult of a purchase. Alternatively, the end user might have receivedthe locked document through super-distribution, i.e., a freedistribution of a document through e-mail, on CD-ROM or over the Web.

A user program can be distributed with each locked document and loadedonto a computer by the end user, if necessary (e.g., the computer doesnot already have a loaded user program, or the computer has an olderversion of the user program). Alternatively, the user program can bedownloaded from a content provider's web site as a browser plug-in. Theuser program provides a graphical user interface through which the enduser transacts with the content provider's server and opens a lockeddocument, as described below.

When the end user opens the locked document, the user program performs asearch of the end user's computer to locate a corresponding license file102 (step 204). If the corresponding license file 102 is found, thedocument is made available to the end user according to the licensespecified in the license file 102 (step 206). As shown in FIG. 3, if thecorresponding license file 102 is not found, the user programestablishes a communication link between the end user and a brokerprogram running on the content provider's web server (step 302).Typically, the communication link is a web-based link. The end user isnow referred to as a retail customer. Once the communication link isestablished, the user program launches a selection dialog on the retailcustomer's computer through which the retail customer and the brokerprogram negotiate terms for the acquisition of a license file 102. Partof the terms of negotiation is establishing how the license stored inthe license file 102 will bind the document to prevent free(unauthorized) use of the document, e.g., beyond an end user's computer.The broker program can be configured to allow the retail customer toselect all of the habitat types 110 to which the document is bound (step304). Alternatively, the broker program can specify one or more habitattypes 110 (“broker-required habitat types”) as required by the contentprovider and allow the retail customer to select one or more habitattypes 110 (“user-selected habitat types”) to which the document isbound. In one implementation, the selection dialog includes a list ofall the habitat types 110 that the user program recognizes as habitattypes 110. As new habitat types 110 become available to end users, thelist of recognized habitat types 110 may be added to and displayed inselection dialogs of newer versions of the user program. Each habitattype 110 is associated with a check box that can be checked or uncheckedby the retail customer to indicate a selection or a non-selection,respectively. The boxes corresponding to the broker-required habitattypes may be pre-checked or grayed-out to indicate a selection. Once thehabitat types 110 are agreed upon, the broker program can send a requestpacket to the user program requesting information (i.e., habitat values112 and relations 114) for the habitat types 110 (step 306).

In one implementation, the user program launches a preferences dialog onthe retail customer's computer. The retail customer uses the preferencesdialog to control what habitat values 112 are sent to the broker programupon receipt of the request packet. The preferences dialog providesmultiple fields in which the retail customer can enter habitat values112 for the habitat types 110 (step 308). The preferences dialog caninclude a list of habitat values associated with the habitat types onthe retail customer's computer. The retail customer can thendrag-and-drop the habitat values from the list of habitat values (e.g.,the CPU ID or the serial number of the hard disk installed in thecomputer the customer is currently using) into the appropriate fields,or manually enter the habitat values of habitat types from anothersource (e.g., the CPU ID of a different computer or the serial numbersof ten CD-ROMs). Upon receipt of the requested information, the brokerprogram constructs an AND-OR logic expression of habitat terms thatincludes the user-selected habitat types 110, the broker-requiredhabitat types 110 (if any), and the corresponding user-specified habitatvalues 112. The broker program can be configured to allow the manner inwhich the habitat terms are ANDed and ORed together to be defined by:(a) the retail customer exclusively; (b) the content provider with inputfrom the retail customer; (c) the content provider exclusively (i.e.,using a pre-defined expression); or (d) a third party, such as adistributor. The broker program can then complete the creation of thelicense file 102 by including a header (identifier 104) (step 312). Thebroker program can send the license file 102 to the retail customer overthe web-based link or in a separate e-mail message.

The retail customer can store the license file 102 on his computerexclusively or send the license file to one or more end users. Returningto FIG. 2, an end user obtains the license file 102 for the lockeddocument (step 208) and stores it on a computer. From this point on,when the end user opens the locked document, the user program performs asearch of the computer, locates the corresponding license file 102, andthe locked document is made available to the end user according to thelicense specified in the license file 102 (step 206).

The invention can be implemented in digital electronic circuitry, or incomputer hardware, firmware, software, or in combinations of them.Apparatus of the invention can be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a programmable processor; and method steps of the inventioncan be performed by a programmable processor executing a program ofinstructions to perform functions of the invention by operating on inputdata and generating output. The invention can be implementedadvantageously in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. Each computer program can be implemented ina high-level procedural or object-oriented programming language, or inassembly or machine language if desired; and in any case, the languagecan be a compiled or interpreted language. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, a processor will receive instructions and data from aread-only memory and/or a random access memory. Generally, a computerwill include one or more mass storage devices for storing data files;such devices include magnetic disks, such as internal hard disks andremovable disks, magneto-optical disks, optical disks, and solid statememory, such as flash memory. Storage devices suitable for tangiblyembodying computer program instructions and data include all forms ofnon-volatile memory, including by way of example semiconductor memorydevices, such as EPROM, EEPROM, and flash memory devices; magnetic diskssuch as internal hard disks and removable disks; magneto-optical disks;and CD-ROM disks. Any of the foregoing can be supplemented by, orincorporated in, ASICs (application-specific integrated circuits). Theterm “computer” applies to programmable or programmed system, such as isfound in a workstation, desktop computer, notebook computer, hand-heldcomputer, personal digital assistant (PDA), or mobile phone.

The invention has been described in terms of particular embodiments.Other embodiments are within the scope of the following claims. Forexample, the steps of the invention can be performed in a differentorder and still achieve desirable results. In some embodiments, thelicense and the content can be stored in a common file. In someembodiments, the retail customer can provide the environment, such as apersonal computer, and habitat types and values can be selectedautomatically from the provided environment.

1. A method for creating a license defining permissions to useelectronic content, comprising: selecting a plurality of habitat types,wherein each habitat type is an aspect of a user environment to which alicense can be bound, and wherein the selection is based on input from aretail customer, determining a set of one or more habitat values andrelations for each of the selected habitat types; and creating a licenseto permit use of the electronic content, the license including an and-orlogic expression of habitat terms, each habitat term containing one ofthe selected habitat types and its set of corresponding habitat valuesand relations.
 2. The method of claim 1, wherein the retail customer isan end user of the electronic content.
 3. The method of claim 1,wherein: the selection is based on input received through a selectiondialog on a graphical user interface, the selection dialog including aplurality of habitat types, each habitat type being associated with acheck box.
 4. The method of claim 1, wherein: the set of habitat valuesand relations is determined based on input from the retail customer. 5.The method of claim 4, wherein: the set of habitat values and relationsis determined based on input received through a preferences dialog on agraphical user interface, the preferences dialog providing multiplefields in which the retail customer enters habitat values for theselected habitat types.
 6. The method of claim 1, wherein the licensefurther comprises: a plurality of and-or logic expressions of habitatterms that are nested to multiple levels.
 7. The method of claim 1,wherein the electronic content is an encrypted document and wherein eachhabitat term further comprises: a key for use in decrypting theencrypted document.
 8. The method of claim 7, wherein the expression isevaluated in a deterministic order and the key is extracted from thelast habitat term in the and-or logic expression that is evaluated torender the entire and or logic expression true.
 9. The method of claim1, wherein each habitat term further comprises: a set of accesspermissions for use in restricting access to the electronic content. 10.The method of claim 9, wherein the expression is evaluated in adeterministic order and the set of access permissions is extracted fromthe last habitat term in the and-or logic expression that is evaluatedto render the and-or logic expression true.
 11. The method of claim 9,wherein each habitat term has a different set of access permissionsapplicable to the electronic content.
 12. The method of claim 1, whereinselecting a plurality of habitat types further comprises selectinghabitat types based on input from a provider of the electronic content.13. The method of claim 1, wherein the and-or logic expression ofhabitat terms is defined based on input from the retail customer. 14.The method of claim 1, wherein the and-or logic expression of habitatterms is defined based on input from a provider of the electroniccontent.
 15. The method of claim 1, wherein the and-or logic expressionof habitat terms is defined based on input from a third partydistributor.
 16. The method of claim 1, wherein each habitat type is atype of computer component, a type of computer peripheral device, a typeof user information, a type of biometric information, a time, or ageographic location.
 17. The method of claim 1, wherein input from theretail customer can effect selection of habitat types from a groupcomprising central processing unit, hard disk, removable medium, andlogin name.
 18. The method of claim 1, wherein the license is stored ina file separate from the electronic content.
 19. The method of claim 1,wherein the license is stored in a common file with the electroniccontent.
 20. A computer implemented method for obtaining a license fileto electronic content, comprising receiving from a retail customer aninput selecting a plurality of habitat types and a set of one or morehabitat values for each of the selected habitat types; and requestingfrom a server a license file to permit use of an electronic content, thelicense file including an and-or logic expression of habitat terms, eachhabitat term containing one of the selected habitat types and itscorresponding set of habitat values.
 21. A method for allowing an enduser to access electronic content, comprising: receiving electroniccontent at a user computer; receiving a license file permitting use ofthe electronic content at the user computer, the license file includingan and-or logic expression of habitat terms, each habitat termcontaining a set of access permissions, the habitat terms having beenselected based on input from a retail customer; extracting the set ofaccess permissions from an evaluation of the expression that renders theexpression true; and allowing an end user to access the electroniccontent according to the extracted set of access permissions applicableto the electronic content.
 22. The method of claim 21, wherein the setof access permissions is extracted from the last habitat term in theexpression that is evaluated to render the expression true.
 23. Themethod of claim 21, wherein the electronic content includes a universalset of access permissions applicable to the electronic content, themethod further comprising: defining access to the electronic contentusing both the universal set of access permissions and the extracted setof access permissions.
 24. A computer program product stored on amachine readable medium for creating a license defining permissions toelectronic content, the product comprising instructions operable tocause a programmable processor to: select a plurality of habitat types,wherein each habitat type is an aspect of a user environment to which alicense can be bound, and wherein the selection is based on input from aretail customer; determine a set of one or more habitat values andrelations for each of the selected habitat types; and create a licenseto permit use of the electronic content, the license including an and-orlogic expression of habitat terms, each habitat term containing one ofthe selected habitat types and its set of corresponding habitat valuesand relations.
 25. The product of claim 24, wherein the retail customeris an end user of the electronic content.
 26. The product of claim 24,wherein: the input is received through a selection dialog on a graphicaluser interface, the selection dialog including a plurality of habitattypes, each habitat type being associated with a check box.
 27. Theproduct of claim 24, wherein: the set of habitat values and relations isdetermined based on input from the retail customer.
 28. The product ofclaim 27, wherein: the set of habitat values and relations is determinedbased on input received through a preferences dialog on a graphical userinterface, the preferences dialog providing multiple fields in which theretail customer enters habitat values for the selected habitat types.29. The product of claim 24, wherein the license further comprises: aplurality of and-or logic expressions of habitat terms that are nestedwithin each other.
 30. The product of claim 24, wherein the electroniccontent is an encrypted document and wherein each habitat term furthercomprises: a key for use in decrypting the encrypted document.
 31. Theproduct of claim 30, wherein the expression is evaluated in adeterministic order and the key is extracted from the last habitat termin the and-or logic expression that is evaluated to render the entireand-or logic expression true.
 32. The product of claim 24, wherein eachhabitat term her comprises: a set of access permissions for use inrestricting access to the electronic content.
 33. The product of claim32, wherein the expression is evaluated in a deterministic order and theset of access permissions is extracted from the last habitat term in theand-or logic expression that is evaluated to render the and-or logicexpression true.
 34. The product of claim 32, wherein each habitat termhas a different set of access permissions applicable to the electroniccontent.
 35. The product of claim 24, further comprising instructionsoperable to cause a programmable processor to: select a plurality ofhabitat types, wherein the selection is based on input from a providerof the electronic content.
 36. The product of claim 24, wherein theand-or logic expression of habitat terms is defined based on input fromthe retail customer.
 37. The product of claim 24, wherein the and-orlogic expression of habitat terms is defined based on input from aprovider of the electronic content.
 38. The product of claim 24, whereinthe and-or logic expression of habitat terms is defined based on inputfrom a third party distributor.
 39. The product of claim 24, whereineach habitat type is a central processing unit (CPU), a hard disk, aremovable floppy disk, a CDROM, a removable disk cartridge, a flashmemory card, a network drive, a user login name, a fingerprint, ahandwritten signature, a smart card, a time or a geographic location.40. A computer program product stored on a machine readable medium forobtaining a license file to electronic content, the product comprisinginstructions operable to cause a programmable processor to: receive froma retail customer an input selecting a plurality of habitat types and aset of one or more habitat values for each of the selected habitattypes; and request from a server a license file to permit use of anelectronic content, the license file including an and-or logicexpression of habitat terms, each habitat term containing one of theselected habitat types and its corresponding set of habitat values. 41.A computer program product stored on a machine readable medium forallowing an end user to access electronic content, the productcomprising instructions operable to cause a programmable processor to:receive electronic content at a user computer; receive a license filepermitting use of the electronic content at the user computer, thelicense file including an and-or logic expression of habitat terms, eachhabitat term containing a set of access permissions, the habitat termshaving been selected based on input from a retail customer; extract theset of access permissions from an evaluation of the expression thatrenders the expression true; and allow an end user to access theelectronic content according to the extracted set of access permissionsapplicable to the electronic content.
 42. The product of claim 41,wherein the access permissions are extracted from the last habitat termin the and-or expression that is evaluated to render the entire and-orexpression true.
 43. The product of claim 41, wherein the electroniccontent includes a universal set of access permissions applicable to theelectronic content, the product further comprising instructions operableto cause a programmable processor to: define access to the electroniccontent using both the universal set of access permissions and theextracted set of access permissions.
 44. A system for creating a licensedefining permissions to use electronic content, comprising: means forselecting a plurality of habitat types, wherein each habitat type is anaspect of a user environment to which a license can be bound, andwherein the selection is based on input from a retail customer; meansfor determining a set of one or more habitat values and relations foreach of the selected habitat types; and means for creating a license topermit use of the electronic content, the license including an and-orlogic expression of habitat terms, each habitat term containing one ofthe selected habitat types and its set of corresponding habitat valuesand relations.
 45. The system of claim 44, wherein the retail customeris an end user of the electronic content.
 46. The system of claim 44,wherein: the selection is based on input received through a selectiondialog on a graphical user interface, the selection dialog including aplurality of habitat types, each habitat type being associated with acheck box.
 47. The system of claim 44, wherein: the set of habitatvalues and relations is determined based on input from the retailcustomer.
 48. The system of claim 47, wherein: the set of habitat valuesand relations is determined based on input received through apreferences dialog on a graphical user interface, the preferences dialogproviding multiple fields in which the retail customer enters habitatvalues for the selected habitat types.
 49. The system of claim 44,wherein the license further comprises: a plurality of and-or logicexpressions of habitat terms that are nested to multiple levels.
 50. Thesystem of claim 44, wherein the electronic content is an encrypteddocument and wherein each habitat term further comprises: a key for usein decrypting the encrypted document.
 51. The system of claim 50,wherein the expression is evaluated in a deterministic order and the keyis extracted from the last habitat term in the and-or logic expressionthat is evaluated to render the entire and-or logic expression true. 52.The system of claim 44, wherein each habitat term further comprises: aset of access permissions for use in restricting access to theelectronic content.
 53. The system of claim 52, wherein the expressionis evaluated in a deterministic order and the set of access permissionsis extracted from the last habitat term in the and-or logic expressionthat is evaluated to render the and-or logic expression true.
 54. Thesystem of claim 52, wherein each habitat term has a different set ofaccess permissions applicable to the electronic content.
 55. The systemof claim 44, wherein the means for selecting a plurality of habitattypes further comprises means for selecting habitat types based on inputfrom a provider of the electronic content.
 56. The system of claim 44,wherein the and-or logic expression of habitat terms is defined based oninput from the retail customer.
 57. The system of claim 44, wherein theand-or logic expression of habitat terms is defined based on input froma provider of the electronic content.
 58. The system of claim 44,wherein the and-or logic expression of habitat terms is defined based oninput from a third party distributor.
 59. The system of claim 44,wherein each habitat type is a type of computer component, a type ofcomputer peripheral device, a type of user information, a type ofbiometric information, a time, or a geographic location.
 60. The systemof claim 44, wherein input from the retail customer can effect selectionof habitat types from a group comprising central processing unit, harddisk, removable medium, and login name.
 61. The system of claim 44,wherein the license is stored in a file separate from the electroniccontent.
 62. The system of claim 44, wherein the license is stored in acommon file with the electronic content.
 63. A computer implementedsystem for obtaining a license file to electronic content, comprising:means for receiving from a retail customer an input selecting aplurality of habitat types and a set of one or more habitat values foreach of the selected habitat types; and means for requesting from aserver a license file to permit use of an electronic content, thelicense file including an and-or logic expression of habitat terms, eachhabitat term containing one of the selected habitat types and itscorresponding set of habitat values.
 64. A system for allowing an enduser to access electronic content, comprising: means for receivingelectronic content at a user computer; means for receiving a licensefile permitting use of the electronic content at the user computer, thelicense file including an and-or logic expression of habitat terms, eachhabitat term containing a set of access permissions, the habitat termshaving been selected based on input from a retail customer; means forextracting the set of access permissions from an evaluation of theexpression that renders the expression true; and means for allowing anend user to access the electronic content according to the extracted setof access permissions applicable to the electronic content.
 65. Thesystem of claim 64, wherein the set of access permissions is extractedfrom the last habitat term in the expression that is evaluated to renderthe expression true.
 66. The system of claim 64, wherein the electroniccontent includes a universal set of access permissions applicable to theelectronic content, the system further comprising: means for definingaccess to the electronic content using both the universal set of accesspermissions and the extracted set of access permissions.